package com.smart.community.region.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

/**
 * 房户查询条件DTO
 * 
 * @author Wu.Liang
 * @since 2024-12-21
 */
@Data
@Schema(description = "房户查询条件DTO")
public class HouseholdQueryDTO {

    @Schema(description = "房户编码（精确查询）")
    private String householdCode;

    @Schema(description = "所属社区ID")
    private Long communityId;

    @Schema(description = "所属楼栋ID")
    private Long buildingId;

    @Schema(description = "所属单元ID")
    private Long unitId;

    @Schema(description = "楼层号")
    private Integer floorNumber;

    @Schema(description = "房间号（模糊查询）")
    private String roomNumber;

    @Schema(description = "房间类型：1-一室，2-两室，3-三室，4-四室及以上")
    private Integer roomType;

    @Schema(description = "状态：0-空置，1-已入住，2-装修中，3-出租")
    private Integer status;

    @Schema(description = "面积最小值")
    private Double areaMin;

    @Schema(description = "面积最大值")
    private Double areaMax;

    @Schema(description = "装修状态：0-毛坯，1-简装，2-精装，3-豪华装修")
    private Integer decorationStatus;

    @Schema(description = "产权类型：1-商品房，2-经济适用房，3-公租房，4-其他")
    private Integer propertyType;

    @Schema(description = "关键词搜索（房屋号、房户编码）")
    private String keyword;

    @Schema(description = "创建开始时间", example = "2025-01-01")
    private String createTimeStart;

    @Schema(description = "创建结束时间", example = "2025-12-31")
    private String createTimeEnd;

    @Schema(description = "排序字段", example = "create_time")
    private String orderBy;

    @Schema(description = "排序方向：asc-升序，desc-降序", example = "desc")
    private String orderDirection;

    @Schema(description = "当前页码", example = "1")
    private Integer current = 1;

    @Schema(description = "每页大小", example = "10")
    private Integer size = 10;
} 